package com.drug.wms.domain;

import com.drug.common.annotation.Dict;
import com.drug.common.annotation.Excel;
import com.drug.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 商品入库清单详情对象 bus_goods_stock_detail
 *
 * @author ruoyi
 * @date 2021-12-01
 */
@ApiModel(value = "busGoodsStockDetail", description = "商品入库清单详情对象")
public class BusGoodsStockDetail extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty("主键id")
    private String id;

    /**
     * 单据编号
     */
    @ApiModelProperty("单据主键编号")
    @Excel(name = "单据主键编号")
    private String stockId;

    /**
     * 商品编号
     */
    @ApiModelProperty("商品编号")
    @Excel(name = "商品编号")
    @Dict(dictTable = "bus_goods_base_info", dicCode = "goods_no", dicText = "goods_name")
    private String goodsNo;

    /**
     * 商品名称
     */
    @ApiModelProperty("商品名称")
    @Excel(name = "商品名称")
    private String goodsName;

    /**
     * 商品条码
     */
    @ApiModelProperty("商品条码")
    @Excel(name = "商品条码")
    private String barcode;
    /**
     * 批号
     */
    @Excel(name = "批号")
    @ApiModelProperty("批号")
    private String batchNo;

    /**
     * 规格
     */
    @Excel(name = "规格")
    @ApiModelProperty("规格")
    private String norms;
    /**
     * 基本单位编号
     */
    @ApiModelProperty("基本单位编号")
    @Excel(name = "基本单位编号")
    @Dict(dictTable = "bus_unit_conf", dicCode = "id", dicText = "unit_name")
    private String basicUnitNo;

    /**
     * 生产厂商
     */
    @ApiModelProperty("生产厂商")
    @Dict(dictTable = "bus_manufacturer_info",dicText = "name",dicCode = "id")
    private String manufacturerNo;
    /**
     * 收货仓库编号
     */
    @ApiModelProperty("收货仓库编号")
    @Excel(name = "收货仓库编号")
    @Dict(dictTable = "bus_warehose_info",dicText = "warehouse_name",dicCode = "id")
    private String receivingNo;

    /**
     * 收货货位编号
     */
    @ApiModelProperty("收货货位编号")
    @Excel(name = "收货货位编号")
    @Dict(dictTable = "bus_cargo_space_conf",dicText = "space_name",dicCode = "id")
    private String receivingGoodsNo;

    /**
     * 批准文号
     */
    @ApiModelProperty("批准文号")
    @Excel(name = "批准文号")
    private String approvalNumber;

    /**
     * 生产日期
     */
    @ApiModelProperty("生产日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date productionDate;


    /**
     * 有效期至
     */
    @ApiModelProperty("有效期至")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期至", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expireDate;

    /**
     * 检验报告号
     */
    @ApiModelProperty("检验报告号")
    @Excel(name = "检验报告号")
    private String reportNumber;
    /**
     * 单位
     */
    @Excel(name = "单位")
    @ApiModelProperty("单位")
    @Dict(dictTable = "bus_unit_conf", dicCode = "id", dicText = "unit_name")
    private String unitNo;

    /**
     * 数量
     */
    @ApiModelProperty("数量")
    @Excel(name = "数量")
    private Long goodsNum;

    /**
     * 单价
     */
    @ApiModelProperty("单价")
    @Excel(name = "单价")
    private BigDecimal goodsPrice;

    /**
     * 金额
     */
    @ApiModelProperty("金额")
    @Excel(name = "金额")
    private BigDecimal totalPrice;

    /**
     * 商品税率
     */
    @ApiModelProperty("商品税率")
    @Excel(name = "商品税率")
    private BigDecimal commodityTax;

    /**
     * 含税单价
     */
    @ApiModelProperty("含税单价")
    @Excel(name = "含税单价")
    private BigDecimal unitPriceIncludingTax;

    /**
     * 含税金额
     */
    @ApiModelProperty("含税金额")
    @Excel(name = "含税金额")
    private BigDecimal totalPriceIncludingTax;

    /**
     * 税额
     */
    @ApiModelProperty("税额")
    @Excel(name = "税额")
    private BigDecimal totalTax;

    /**
     * 零售价
     */
    @ApiModelProperty("零售价")
    @Excel(name = "零售价")
    private BigDecimal retailPrice;

    /**
     * 零售金额
     */
    @ApiModelProperty("零售金额")
    @Excel(name = "零售金额")
    private BigDecimal totalRetailPrice;

    /**
     * 质量状况
     */
    @ApiModelProperty("质量状况")
    @Excel(name = "质量状况")
    private String qualityStatus;

    /**
     * 是否赠品
     */
    @ApiModelProperty("是否赠品")
    @Excel(name = "是否赠品")
    private Long gift;

    /**
     * 数据状态
     */
    @ApiModelProperty("数据状态")
    @Excel(name = "数据状态")
    private String validityCode;
    /**
     * 部门ID
     */
    @ApiModelProperty("部门ID")
    @Excel(name = "部门ID")
    private String deptId;


    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public String getStockId() {
        return stockId;
    }

    public void setStockId(String stockId) {
        this.stockId = stockId;
    }

    public void setGoodsNo(String goodsNo) {
        this.goodsNo = goodsNo;
    }

    public String getGoodsNo() {
        return goodsNo;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public String getBarcode() {
        return barcode;
    }

    public void setBarcode(String barcode) {
        this.barcode = barcode;
    }

    public void setBasicUnitNo(String basicUnitNo) {
        this.basicUnitNo = basicUnitNo;
    }

    public String getBasicUnitNo() {
        return basicUnitNo;
    }

    public void setReceivingNo(String receivingNo) {
        this.receivingNo = receivingNo;
    }

    public String getReceivingNo() {
        return receivingNo;
    }

    public void setReceivingGoodsNo(String receivingGoodsNo) {
        this.receivingGoodsNo = receivingGoodsNo;
    }

    public String getReceivingGoodsNo() {
        return receivingGoodsNo;
    }

    public void setApprovalNumber(String approvalNumber) {
        this.approvalNumber = approvalNumber;
    }

    public String getApprovalNumber() {
        return approvalNumber;
    }

    public void setProductionDate(Date productionDate) {
        this.productionDate = productionDate;
    }

    public Date getProductionDate() {
        return productionDate;
    }

    public void setExpireDate(Date expireDate) {
        this.expireDate = expireDate;
    }

    public Date getExpireDate() {
        return expireDate;
    }

    public void setReportNumber(String reportNumber) {
        this.reportNumber = reportNumber;
    }

    public String getReportNumber() {
        return reportNumber;
    }

    public void setGoodsNum(Long goodsNum) {
        this.goodsNum = goodsNum;
    }

    public Long getGoodsNum() {
        return goodsNum;
    }

    public void setGoodsPrice(BigDecimal goodsPrice) {
        this.goodsPrice = goodsPrice;
    }

    public BigDecimal getGoodsPrice() {
        return goodsPrice;
    }

    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice() {
        return totalPrice;
    }

    public void setCommodityTax(BigDecimal commodityTax) {
        this.commodityTax = commodityTax;
    }

    public BigDecimal getCommodityTax() {
        return commodityTax;
    }

    public void setUnitPriceIncludingTax(BigDecimal unitPriceIncludingTax) {
        this.unitPriceIncludingTax = unitPriceIncludingTax;
    }

    public BigDecimal getUnitPriceIncludingTax() {
        return unitPriceIncludingTax;
    }

    public void setTotalPriceIncludingTax(BigDecimal totalPriceIncludingTax) {
        this.totalPriceIncludingTax = totalPriceIncludingTax;
    }

    public BigDecimal getTotalPriceIncludingTax() {
        return totalPriceIncludingTax;
    }

    public void setTotalTax(BigDecimal totalTax) {
        this.totalTax = totalTax;
    }

    public BigDecimal getTotalTax() {
        return totalTax;
    }

    public void setRetailPrice(BigDecimal retailPrice) {
        this.retailPrice = retailPrice;
    }

    public BigDecimal getRetailPrice() {
        return retailPrice;
    }

    public void setTotalRetailPrice(BigDecimal totalRetailPrice) {
        this.totalRetailPrice = totalRetailPrice;
    }

    public BigDecimal getTotalRetailPrice() {
        return totalRetailPrice;
    }

    public void setQualityStatus(String qualityStatus) {
        this.qualityStatus = qualityStatus;
    }

    public String getQualityStatus() {
        return qualityStatus;
    }

    public void setGift(Long gift) {
        this.gift = gift;
    }

    public Long getGift() {
        return gift;
    }

    public void setValidityCode(String validityCode) {
        this.validityCode = validityCode;
    }

    public String getValidityCode() {
        return validityCode;
    }

    public String getBatchNo() {
        return batchNo;
    }

    public void setBatchNo(String batchNo) {
        this.batchNo = batchNo;
    }

    public String getUnitNo() {
        return unitNo;
    }

    public void setUnitNo(String unitNo) {
        this.unitNo = unitNo;
    }

    public String getDeptId() {
        return deptId;
    }

    public void setDeptId(String deptId) {
        this.deptId = deptId;
    }

    public String getNorms() {
        return norms;
    }

    public void setNorms(String norms) {
        this.norms = norms;
    }

    public String getManufacturerNo() {
        return manufacturerNo;
    }

    public void setManufacturerNo(String manufacturerNo) {
        this.manufacturerNo = manufacturerNo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("stockId", getStockId())
                .append("goodsNo", getGoodsNo())
                .append("goodsName", getGoodsName())
                .append("barcode", getBarcode())
                .append("basicUnitNo", getBasicUnitNo())
                .append("receivingNo", getReceivingNo())
                .append("receivingGoodsNo", getReceivingGoodsNo())
                .append("approvalNumber", getApprovalNumber())
                .append("productionDate", getProductionDate())
                .append("expireDate", getExpireDate())
                .append("reportNumber", getReportNumber())
                .append("goodsNum", getGoodsNum())
                .append("goodsPrice", getGoodsPrice())
                .append("totalPrice", getTotalPrice())
                .append("commodityTax", getCommodityTax())
                .append("unitPriceIncludingTax", getUnitPriceIncludingTax())
                .append("totalPriceIncludingTax", getTotalPriceIncludingTax())
                .append("totalTax", getTotalTax())
                .append("retailPrice", getRetailPrice())
                .append("totalRetailPrice", getTotalRetailPrice())
                .append("qualityStatus", getQualityStatus())
                .append("gift", getGift())
                .append("remark", getRemark())
                .append("validityCode", getValidityCode())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
